//APP更新

import configService from '@/common/service/config.service.js';

//判断WIFI连接状态
function validIsLinkWifi(){
	if(plus.networkinfo.getCurrentType()!=3){
		return false
	}
	return true
}

export default function appUpdate() {
	if(!configService.apiUrl){
		return false
	}
	
	let _osName = plus.os.name		//Android, 
	let _appId = '__UNI__9EC3BDA'	//代码获取appId时得到的是固定字符串'HBuilder', 此处为了分区别同一公司可能拥有多款APP, 采用一款APP对应唯一值(即:和uniapp项目manifest中appid手工保持一致)
	let _version = ''
	
	//获取manifest.json配置文件
	plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {
		//console.log('wgtInfo = ', wgtInfo)
		_version = wgtInfo.version
		
		//console.log("_osName = ", _osName)
		//console.log("_appId = ", _appId)
		//console.log("_version = ", _version)
		
		uni.request({
			//检查更新的服务器地址
			url: configService.apiUrl + '/publish/validNeedUpdate',
			data: {
				osName: _osName,
				appId: _appId,
				version: _version
			},
			success: (res) => {
				/*
					服务器返回数据结构
					{
						data:{
							success:true,
							result:{
								needUpdate: 'true',
								updateTitle: '医疗帮v1.0.7-&gt;v1.0.8',
								newestVersion: '1.0.8',
								updateDescription: '-集成支付宝支付\n-集成微信支付\n-优化个人中心\n-修复部分已知问题',
								newestAppDownloadUrl: 'http://qiniu.cdn.dev.hncuiyi.com/ylb-v1.0.7.apk',
							}
						}
					}
				*/
				if(!res.data.success){
					return false
				}
				let jsonData = res.data.result
				if(!jsonData){
					return false
				}
				
				//'true'-客户端需要更新, 'false'-客户端不需要更新
				let _needUpdate = jsonData.needUpdate.toLowerCase().trim()
				if(_needUpdate=='false'){
					return false
				}
				
				//判断用户网络状态
				let _isLinkWifi = validIsLinkWifi()
				if(_isLinkWifi){
					uni.showToast({
					  title: '温馨提示：需要更新但您并非wifi上网，\n为节约流量您可自主决定是否更新，\n旧版本将有部分功能无法继续使用。',
					  mask: true,
					  icon: 'none',
					  duration: 7000
					});
				}
				
				// 用户决定是否更新
				setTimeout(function() {
					uni.showModal({
						title: jsonData.updateTitle,
						content: jsonData.updateDescription,
						confirmText: '立即安全更新',
						showCancel: false,
						success: (showResult) => {
							if (showResult.confirm) {
								//用户点击-确定
								let _newestAppDownloadUrl = jsonData.newestAppDownloadUrl
								if (_newestAppDownloadUrl) {
									plus.nativeUI.toast("正在准备环境，请稍后!");
									var dtask = plus.downloader.createDownload(jsonData.newestAppDownloadUrl, {
										method: 'GET',
										filename: '_doc/update/'
									}, function(d, status) {
										if (status == 200) {
											var path = d.filename; //下载apk
											plus.runtime.install(path); // 自动安装apk文件
										} else {
											plus.nativeUI.alert('版本更新失败:' + status + '，请在应用商店下载最新');
										}
									});
									dtask.start();
								}
							}else{
								//用户点击-取消
								uni.showToast({
								  title: '温馨提醒：本次未更新，部分功能将无法使用',
								  mask: true,
								  icon: 'none',
								  duration: 6000
								});
							}
						}
					})
				}, 8000);
			}
		})
	})
	
	
	
}
